// 导出一个axios的实例 而且这个实例要有请求拦截器 响应拦截器
import axios from "axios";
import store  from '@/store'
import router from "@/router";
// 创建一个axios的实例
const service = axios.create({
    // 设置基地址
    baseURL: process.env.VUE_APP_BASE_API,
})

// 请求拦截器
// 添加请求拦截器
service.interceptors.request.use(function (config) {
    // 在发送请求之前做些什么
    const token = store.state.user.token
    if(token){
        config.headers.Authorization = `Bearer ${token}`
    }
    return config;
  }, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
  });
// 响应拦截器
// 添加响应拦截器
service.interceptors.response.use(function (response) {
    // 对响应数据做点什么
    if(!response.data.success){
        return Promise.reject(new Error(response.data.message))
    }
    return response.data;
  }, function (error) {
    // 对响应错误做点什么
    console.log(error.response);
    if(error.response.data.code === 10002 && error.response.status === 401){
      store.dispatch('user/logout')
      router.push('/login')
    }
    return Promise.reject(error);
  });

// 导出axios实例
export default service
